// pages/register/register.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    text: '获取验证码', //按钮文字
    currentTime: 61, //倒计时
    disabled: false, //按钮是否禁用
    phone: '', //获取到的手机栏中的值
    VerificationCode: '',
    Code: '',
    userName: '',
    NewChanges: '',
    NewChangesAgain: '',
    success: false,
    state: '0',
    url: '',
    errmsg: '',
    src: []
  },

  chooseImage(e) {
    wx.chooseImage({
      count: 1, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
      success: (res) => {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths
        this.setData({
          src: tempFilePaths
        })
      }
    })

  },

  showImg(e) {

    var current = e.target.dataset.src;
    wx.previewImage({
      current: current, // 当前显示图片的http链接  
      urls: this.data.src // 需要预览的图片http链接列表  
    })
    console.log(this.data.src)
  },

  /**
   * 获取验证码
   */
  return_home: function(e) {
    wx.navigateTo({
      url: '/pages/register/register',
    })

  },
  handleInputPhone: function(e) {
    this.setData({
      phone: e.detail.value
    })
  },
  handleVerificationCode: function(e) {
    console.log(e);
    this.setData({
      Code: e.detail.value
    })
  },
  handUserName(e) {
    this.setData({
      userName: e.detail.value
    })
  },

  handleNewChanges: function(e) {
    console.log(e);
    this.setData({
      NewChanges: e.detail.value
    })
  },
  handleNewChangesAgain: function(e) {
    console.log(e.detail.value);
    this.setData({
      NewChangesAgain: e.detail.value
    })

  },
  doGetCode: function() {
    this.setData({
      disabled: true, //只要点击了按钮就让按钮禁用 （避免正常情况下多次触发定时器事件）
      color: '#ccc',
    })

    var phone = this.data.phone;
    console.log(phone)
    var currentTime = this.data.currentTime //把手机号跟倒计时值变例成js值
    var warn = null; //warn为当手机号为空或格式不正确时提示用户的文字，默认为空
    wx.request({
      url: 'http://127.0.0.1:8000/isExist', //后端判断是否已被注册， 已被注册返回1 ，未被注册返回0
      data: {
        phone: phone
      },
      success: (res) => {
        console.log(res.data)
        this.setData({
          state: res.data.state
        })
        // console.log(this.data.state)
        if (phone == '') {
          warn = "号码不能为空";
        } else if (phone.trim().length != 11 || !/^1[3|4|5|6|7|8|9]\d{9}$/.test(phone)) {
          warn = "手机号格式不正确";
        } //手机号已被注册提示信息
        else if (this.data.state == 1) { //判断是否被注册
          warn = "手机号已被注册";

        } else {
          wx.request({
            url: 'http://127.0.0.1:8000/sendCode', //填写发送验证码接口
            data: {
              mobile: this.data.phone
            },
            success: (res) => {
              console.log(res)
              let title = res.data.errmsg
              this.setData({
                VerificationCode: res.data.sms_code
              })


              //当手机号正确的时候提示用户短信验证码已经发送
              wx.showToast({
                title: title,
                icon: 'none',
                duration: 2000
              });
              //设置一分钟的倒计时
              var interval = setInterval(() => {
                currentTime--; //每执行一次让倒计时秒数减一
                this.setData({
                  text: currentTime + 's', //按钮文字变成倒计时对应秒数

                })
                //如果当秒数小于等于0时 停止计时器 且按钮文字变成重新发送 且按钮变成可用状态 倒计时的秒数也要恢复成默认秒数 即让获取验证码的按钮恢复到初始化状态只改变按钮文字
                if (currentTime <= 0) {
                  clearInterval(interval)
                  this.setData({
                    text: '重新发送',
                    currentTime: 61,
                    disabled: false,
                    color: '#33FF99'
                  })
                }
              }, 1000);
            }
          })
        };
        //判断 当提示错误信息文字不为空 即手机号输入有问题时提示用户错误信息 并且提示完之后一定要让按钮为可用状态 因为点击按钮时设置了只要点击了按钮就让按钮禁用的情况
        if (warn != null) {
          wx.showModal({
            title: '提示',
            content: warn
          })
          this.setData({
            disabled: false,
            color: '#33FF99'
          })
          return;
        }
      }

    })

  },
  submit: function(e) {

    if (this.data.Code == '') {
      wx.showToast({
        title: '请输入验证码',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else if (this.data.Code != this.data.VerificationCode) {
      wx.showToast({
        title: '验证码错误',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else if (this.data.userName == '') {
      wx.showToast({
        title: '请输入昵称',
      })
    } else if (this.data.NewChanges == '') {
      wx.showToast({
        title: '请输入密码',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else if (this.data.src == '') {
      wx.showToast({
        title: '头像未设置',
      })
    } else if (this.data.NewChangesAgain != this.data.NewChanges) {
      wx.showToast({
        title: '两次密码不一致',
        image: '/images/error.png',
        duration: 2000
      })
      return
    } else {

      let data = this.data
      console.log(data.src[0])
      wx.showLoading({
        title: '提交中',
      })
      wx.request({
        url: 'http://127.0.0.1:8000/register/',
        method: "POST",
        data: {
          mobile: data.phone,
          username: data.userName,
          userUrl:  data.src[0],
          password: data.NewChanges,
          sms_code: data.Code
        },
        success: (res) => {
          wx.showToast({
            title: '提交成功~',
            duration: 2000
          })
          console.log(res.data)
          this.setData({
            success: true,
            // url: res.data
          })
          wx.navigateTo({
            url: '../login/login',
          })
          
        },
        fail: (res) =>{
          console.log(res)
          wx.showToast({
            title: res.errmsg,
          })
        }
      })
    }
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})